In computer data centers, many different hosts are used to process, store and transfer large amounts of data. Each host may include one or more processors, memories and interfaces. The hosts, such as servers, are often arranged within racks, with multiple servers housed per rack. Each rack may have a top-of-rack (“TOR”) switch for communication with a next switching layer. This switching layer may include a cluster of switches (“middle blocks”) that provides bisectional high volume localized traffic. In turn, multiple middle blocks may be logically grouped into larger clusters (“fabric blocks”). This creates a multi-level switching arrangement.
Fabric blocks can be located across the data center, with their highest stage of switches interconnected using expensive long-range fibers and optics. The interconnections among fabric blocks often employ a direct connection instead of using a CLOS-type topology as a tradeoff between bisectional bandwidth and lower cost. However, it is challenging to provide a system with fair bandwidth allocation that also respects different classes of service, and that efficiently works across the multi-level switching environment. This can be especially challenging as the number of hosts and the overall size of the data center increase.